﻿using System;
using System.Collections.Generic;
using System.Text;
using Components;
using Telerik.Reporting;

namespace UI.ParentForm
{
    public class PsPrint : Report
    {

        private void InitializeComponent()
        {
            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
            // 
            // PsPrint
            // 
            this.PageSettings.Landscape = false;
            this.PageSettings.Margins.Bottom = new Telerik.Reporting.Drawing.Unit(2.5396826267242432, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
            this.PageSettings.Margins.Left = new Telerik.Reporting.Drawing.Unit(2.5396826267242432, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
            this.PageSettings.Margins.Right = new Telerik.Reporting.Drawing.Unit(2.5396826267242432, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
            this.PageSettings.Margins.Top = new Telerik.Reporting.Drawing.Unit(2.5396826267242432, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
            this.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4;
            this.UnitOfMeasure = ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Pixel));
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();

        }


        protected void SetParams()
        {
            this.ReportParameters.Add("COMNAME", ReportParameterType.String, "");
            this.ReportParameters.Add("COMCODE", ReportParameterType.String, "");
            this.ReportParameters.Add("USERCODE", ReportParameterType.String, "");
            this.ReportParameters.Add("UESRNAME", ReportParameterType.String, "");
            this.ReportParameters.Add("COMTEL", ReportParameterType.String, "");
            this.ReportParameters.Add("COMFAX", ReportParameterType.String, "");
            this.ReportParameters.Add("COMADDRESS", ReportParameterType.String, "");
        }

        #region 小写转大写
        public static string GetNumToUpper(decimal Money)
        {
            string NumList = "";
            string RmbList = "";
            int NumLen = 0;
            int NumChar = 0;
            string N1 = "";
            string N2 = "";
            decimal Mnu = 0;
            int I = 0;
            string numStr = "";
            string Change = "";

            Mnu = Money;
            if (Money > 0)
            {
                Money = Convert.ToDecimal(Money.ToString("#.00"));
            }
            else
            {
                Money = Convert.ToDecimal(Money.ToString("#.00")) * -1;
            }

            NumList = "零壹贰叁肆伍陆柒捌玖";
            RmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";

            if (Money > 9999999999999.99M)
            {
                return "-------";     //超出范围的人民币值,无法显示!; 
            }

            numStr = Convert.ToString(Convert.ToDecimal(Money * 100).ToString("#"));
            NumLen = numStr.Length;

            I = 0;
            while (I <= NumLen - 1)
            {
                NumChar = Convert.ToInt32(numStr.Substring(I, 1));
                N1 = NumList.Substring(NumChar, 1);
                N2 = RmbList.Substring(NumLen - I - 1, 1);

                if (N1 != "零")
                {
                    Change += N1 + N2;
                }
                else
                {
                    if (N2 == "亿" || N2 == "万" || N2 == "元" || N1 == "零")
                    {
                        while (Change.Substring(Change.Length - 1, 1) == "零")
                        {
                            Change = Change.Substring(0, Change.Length - 1);
                        }
                    }
                    if (N2 == "亿" || (N2 == "万" && Change.Substring(Change.Length - 1, 1) != "亿") || N2 == "元")
                    {
                        Change += N2;
                    }
                    else
                    {
                        if (Change.Substring(Change.Length - 2, 2).Substring(0, 1) == "零" || Change.Substring(Change.Length - 1, 1) != "亿")
                        {
                            Change += N1;
                        }
                    }
                }
                I++;
            }
            if (Change.Length > 1)
            {
                while (Change.Substring(Change.Length - 1, 1) == "零")
                {
                    Change = Change.Substring(0, Change.Length - 1);
                }
                if (Change.Substring(Change.Length - 1, 1) == "元" || Change.Substring(Change.Length - 1, 1) == "角")
                {
                    Change += "整";
                }
            }

            if (Mnu > 0)
            {
                return Change;
            }
            else
            {
                if (Mnu < 0)
                {
                    return "负" + Change;
                }
                else
                {
                    return "零元整";
                }
            }
        }
        #endregion

        public static string ToNum(object v) { return Validation.ToFloat(v).ToString(); }
    }
}
